package com.ruoyi.property.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 费用项信息对象 pro_expense_item_info
 * 
 * @author sux
 * @date 2021-06-29
 */
public class ExpenseItemInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 费用项ID */
    private Long expenseId;

    /** 费用类型 */
    @Excel(name = "费用类型",readConverterExp = "0=其他,1=物业费,2=电费,3=水费,4=停车费,5=空调费,6=租金")
    private String expenseType;

    /** 收费项目 */
    @Excel(name = "收费项目")
    private String payItems;

    /** 费用标识 */
    @Excel(name = "费用标识",readConverterExp = "0=周期性费用,1=一次性费用")
    private String feeFlag;

    /** 催缴类型 */
    @Excel(name = "催缴类型",readConverterExp = "0=每年一月一日,1=每月一日,2=每日")
    private String billType;

    /** 付费类型（0预付费 1后付费） */
    @Excel(name = "付费类型", readConverterExp = "0=预付费,1=后付费")
    private String paymentType;

    /** 缴费周期(单位:月) */
    @Excel(name = "缴费周期(单位:月)")
    private Integer paymentCycle;

    /** 计费起始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计费起始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 计费终止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计费终止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 计费单价(单位:元) */
    @Excel(name = "计费单价(单位:元)")
    private BigDecimal squarePrice;

    /** 附加/固定费用(单位:元) */
    @Excel(name = "附加/固定费用(单位:元)")
    private BigDecimal additionalAmount;

    public void setExpenseId(Long expenseId) 
    {
        this.expenseId = expenseId;
    }

    public Long getExpenseId() 
    {
        return expenseId;
    }
    public void setExpenseType(String expenseType) 
    {
        this.expenseType = expenseType;
    }

    public String getExpenseType() 
    {
        return expenseType;
    }
    public void setPayItems(String payItems) 
    {
        this.payItems = payItems;
    }

    public String getPayItems() 
    {
        return payItems;
    }
    public void setFeeFlag(String feeFlag) 
    {
        this.feeFlag = feeFlag;
    }

    public String getFeeFlag() 
    {
        return feeFlag;
    }
    public void setBillType(String billType) 
    {
        this.billType = billType;
    }

    public String getBillType() 
    {
        return billType;
    }
    public void setPaymentType(String paymentType) 
    {
        this.paymentType = paymentType;
    }

    public String getPaymentType() 
    {
        return paymentType;
    }
    public void setPaymentCycle(Integer paymentCycle) 
    {
        this.paymentCycle = paymentCycle;
    }

    public Integer getPaymentCycle() 
    {
        return paymentCycle;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setSquarePrice(BigDecimal squarePrice) 
    {
        this.squarePrice = squarePrice;
    }

    public BigDecimal getSquarePrice() 
    {
        return squarePrice;
    }
    public void setAdditionalAmount(BigDecimal additionalAmount) 
    {
        this.additionalAmount = additionalAmount;
    }

    public BigDecimal getAdditionalAmount() 
    {
        return additionalAmount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("expenseId", getExpenseId())
            .append("expenseType", getExpenseType())
            .append("payItems", getPayItems())
            .append("feeFlag", getFeeFlag())
            .append("billType", getBillType())
            .append("paymentType", getPaymentType())
            .append("paymentCycle", getPaymentCycle())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("squarePrice", getSquarePrice())
            .append("additionalAmount", getAdditionalAmount())
            .toString();
    }
}
